package edu.spec.student.dao.iface;

import edu.spec.student.model.Student;
import edu.spec.student.model.lecture.Lecture;
import edu.spec.student.model.lecture.LectureDto;
import edu.spec.student.model.lecture.StudentLecture;
import edu.spec.basic.model.enumeration.AttendStatus;
import org.madgecko.basic.dao.IBaseDao;

import java.util.List;

/**
 * Created by MadFrog on 2017/6/12.
 */
public interface IStudentLectureDao extends IBaseDao<StudentLecture> {
//    List<Lecture> listUnAttendLecture(Integer studentId);

    /**
     * 列举待参加的讲座（已经报名，时间未到）
     * @param studentId     学生主键
     * @return              讲座列表
     */
    List<Integer> listExpectedLectureIds(Integer studentId);
    List<LectureDto> listUnderwayLectureDto(Integer studentId);
    List<Lecture> listAttendedLecture(Integer studentId);
    List<Lecture> listUnderwaryAndSignInedLecture(Integer studentId);
    void signIn(Integer studentId, Integer lectureId, Float latitude, Float longitude);
//    StudentLecture load(String openId, Integer LectureId);
    void deleteByLecture(Integer lectureId);
    List<Student> listStudentByCon(Integer lectureId, Integer clazzId, AttendStatus attendStatus);
    List<Student> listStudentByCon(Integer lectureId);
    void countAttend(Integer lectureId);
    void like(Integer studentId, Integer lectureId);
}
